Android Application Architecture

Content

Pour ne pas perdre de temps…​

Big Picture

A unique aspect of the Android system design is that any app can start another app’s component.


Android Developers Fundamentals

Build

Build

Running

Running

Overall Organization

Organization

Interactions

Interactions

Set of libraries, resources, etc.

Overview

Messages

Try to avoid "Hello JMB!":

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    <TextView android:text="Hello JMB!" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
AVD launching3

Use "@string/message" instead:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    <TextView android:text="@string/message" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
<resources>
    <string name="app_name">My First App</string>
    <string name="action_settings">Settings</string>
    <string name="message">Hello JMB!</string>
</resources>
AVD launching3

content_main.xml

content_main.xml is a kind of Layout.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    <TextView android:text="@string/message" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>

Views

A Layout contains components (buttons, etc.) ⇒ Views

View structure

Intent

Activities communicate through Intent.

In the same app:

Intent

Intent (ctd.)

Or between apps:

Intent b/w apps

Android Studio in a minute

Install

welcome

Create a new Android Studio project

start

Select a Project Template

new1

Configure the project

new2

First app created!

AVD launching2

Detail of an activity

activity xml

Android Virtual Device Manager

AVD config

AVD Selection and Configuration

AVD config2
AVD: Android Virtual Device

AVD Launching

AVD launching2

AVD Launching (ctd.)

AVD launching3

Navigation Editor

AndroidStudioNavigationEditor

Android metamodel

Android Concepts

Check the Android fundamentals, enrich the list of important concepts and organize them.

Basic Components

Basic Components

Excerpt of the MetaModel

androidmm

Android Activities Lifecycle

Android Activities Lifecycle

Organizing you app

activities

Subtilities not covered

About…​

This web site has been developped by JMB using the following (open and free) tools:

The End       (for me!)